package com.ktgj.customer.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.stream.LongStream;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ktgj.common.core.annotation.Excel;
import com.ktgj.common.core.web.domain.BaseEntity;

/**
 * 退卡申请对象 returncard
 * 
 * @author ruoyi
 * @date 2021-09-15
 */
public class Returncard extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单号 */
    private Long orderId;

    /** 合作厅使用次数 */
    @Excel(name = "合作厅使用次数")
    private Long partnerviphallnum;

    /** 安检使用次数 */
    @Excel(name = "安检使用次数")
    private Long vipchannelnum;

    /** 促销活动费用 */
    @Excel(name = "促销活动费用")
    private BigDecimal salesmoney;

    /** 退卡完成时间回填出纳退款时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "退卡完成时间回填出纳退款时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date completedTime;

    /** 体检费 */
    @Excel(name = "体检费")
    private BigDecimal physicalexaminationfee;

    /** 挂号 */
    @Excel(name = "挂号")
    private BigDecimal registrationfee;

    /** 员工承担保费 */
    @Excel(name = "员工承担保费")
    private BigDecimal employeeguaranteemoney;

    /** 售卡人部门编号 */
    @Excel(name = "售卡人部门编号")
    private Long saleDeptId;

    /** 应退预留款 */
    @Excel(name = "应退预留款")
    private BigDecimal refunddeposit;

    /** 应退现金 */
    @Excel(name = "应退现金")
    private BigDecimal refundcash;

    /** 售卡人编号 */
    @Excel(name = "售卡人编号")
    private Long salePersonActId;

    /** 扣plus抵扣金额 */
    @Excel(name = "扣plus抵扣金额")
    private BigDecimal plusmoney;

    /** 会员编号 */
    @Excel(name = "会员编号")
    private Long customerId;

    /** 扣商品兑换券抵扣金额 */
    @Excel(name = "扣商品兑换券抵扣金额")
    private BigDecimal giftmoney;

    /** 折旧费 */
    @Excel(name = "折旧费")
    private BigDecimal depreciationmoney;

    /** 退卡原因 */
    @Excel(name = "退卡原因")
    private String remarks;

    /** 0银行卡 1预留款 */
    @Excel(name = "0银行卡 1预留款")
    private String refundmethod;

    /** 扣剩余Plus（未使用的部分也要退回） */
    @Excel(name = "扣剩余Plus", readConverterExp = "未=使用的部分也要退回")
    private Long plusbalance;

    /** 扣剩余礼品券 */
    @Excel(name = "扣剩余礼品券")
    private Long giftbalance;

    /** 扣积分数量 */
    @Excel(name = "扣积分数量")
    private Long pointbalance;

    /** 退保单集合,多个以逗号隔开 */
    @Excel(name = "退保单集合,多个以逗号隔开")
    private String refundguarantees;

    /** 卡号 */
    @Excel(name = "卡号")
    private Long cardId;

    /** 是否扣销售员提成，1是 0否 */
    @Excel(name = "是否扣销售员提成，1是 0否")
    private String ishascommission;

    /** 实际售卡量金额 */
    @Excel(name = "实际售卡量金额")
    private BigDecimal realsalemoney;

    /** 会员是否扣保险费用，1是 0否 */
    @Excel(name = "会员是否扣保险费用，1是 0否")
    private String ishasguaranteemoney;

    /** 会员承担保费金额 */
    @Excel(name = "会员承担保费金额")
    private BigDecimal penaltguaranteemoney;

    /** 状态 0：申请退卡，2：退款中，1：退卡完成，3：已取消 10审核成功 11审核失败 21退款失败 */
    @Excel(name = "状态 0：申请退卡，2：退款中，1：退卡完成，3：已取消 10审核成功 11审核失败 21退款失败")
    private String state;

    /** 汇款账号 */
    @Excel(name = "汇款账号")
    private String remittanceaccount;

    /** 银行名称 */
    @Excel(name = "银行名称")
    private String bankname;

    /** 开户行 */
    @Excel(name = "开户行")
    private String subbranchbank;

    /** 户名 */
    @Excel(name = "户名")
    private String bankusername;

    /** 操作人 */
    @Excel(name = "操作人")
    private Long createpersonid;

    /** 保险是否开通 */
    @Excel(name = "保险是否开通")
    private Long isopenguarantee;

    /** 退卡部门 */
    @Excel(name = "退卡部门")
    private Long returncarddeptId;
    //退卡部门名称
    private String returnCardDeptName;

    /** 责任人 */
    @Excel(name = "责任人")
    private Long dutypersonId;

    /** 回赠机票款 */
    @Excel(name = "回赠机票款")
    private Long flightmoney;

    /** 回赠机票款 */
    @Excel(name = "回赠机票款")
    private String cardCode;

    //未执行卡记录表ID
    private Long cardRecordId;
    //其他原因
    private String reason;
    //京东家医扣费
    private BigDecimal jdDoctor;

    /*-----------------------------------------------------------------*/

    /** 退卡原因 */
    @Excel(name = "退卡原因")
    private List<String> remarkList;

    public BigDecimal getJdDoctor()
    {
        return jdDoctor;
    }

    public void setJdDoctor(BigDecimal jdDoctor)
    {
        this.jdDoctor = jdDoctor;
    }

    public String getReason()
    {
        return reason;
    }

    public void setReason(String reason)
    {
        this.reason = reason;
    }

    public String getReturnCardDeptName()
    {
        return returnCardDeptName;
    }

    public void setReturnCardDeptName(String returnCardDeptName)
    {
        this.returnCardDeptName = returnCardDeptName;
    }

    public Long getCardRecordId()
    {
        return cardRecordId;
    }

    public void setCardRecordId(Long cardRecordId)
    {
        this.cardRecordId = cardRecordId;
    }

    public Long getFlightmoney() {
        return flightmoney;
    }

    public void setFlightmoney(Long flightmoney) {
        this.flightmoney = flightmoney;
    }

    public void setOrderId(Long orderId)
    {
        this.orderId = orderId;
    }

    public Long getOrderId() 
    {
        return orderId;
    }
    public void setPartnerviphallnum(Long partnerviphallnum) 
    {
        this.partnerviphallnum = partnerviphallnum;
    }

    public Long getPartnerviphallnum() 
    {
        return partnerviphallnum;
    }
    public void setVipchannelnum(Long vipchannelnum) 
    {
        this.vipchannelnum = vipchannelnum;
    }

    public Long getVipchannelnum() 
    {
        return vipchannelnum;
    }
    public void setSalesmoney(BigDecimal salesmoney) 
    {
        this.salesmoney = salesmoney;
    }

    public BigDecimal getSalesmoney() 
    {
        return salesmoney;
    }
    public void setCompletedTime(Date completedTime) 
    {
        this.completedTime = completedTime;
    }

    public Date getCompletedTime() 
    {
        return completedTime;
    }
    public void setPhysicalexaminationfee(BigDecimal physicalexaminationfee) 
    {
        this.physicalexaminationfee = physicalexaminationfee;
    }

    public BigDecimal getPhysicalexaminationfee() 
    {
        return physicalexaminationfee;
    }
    public void setRegistrationfee(BigDecimal registrationfee) 
    {
        this.registrationfee = registrationfee;
    }

    public BigDecimal getRegistrationfee() 
    {
        return registrationfee;
    }
    public void setEmployeeguaranteemoney(BigDecimal employeeguaranteemoney) 
    {
        this.employeeguaranteemoney = employeeguaranteemoney;
    }

    public BigDecimal getEmployeeguaranteemoney() 
    {
        return employeeguaranteemoney;
    }
    public void setSaleDeptId(Long saleDeptId) 
    {
        this.saleDeptId = saleDeptId;
    }

    public Long getSaleDeptId() 
    {
        return saleDeptId;
    }
    public void setRefunddeposit(BigDecimal refunddeposit) 
    {
        this.refunddeposit = refunddeposit;
    }

    public BigDecimal getRefunddeposit() 
    {
        return refunddeposit;
    }
    public void setRefundcash(BigDecimal refundcash) 
    {
        this.refundcash = refundcash;
    }

    public BigDecimal getRefundcash() 
    {
        return refundcash;
    }
    public void setSalePersonActId(Long salePersonActId) 
    {
        this.salePersonActId = salePersonActId;
    }

    public Long getSalePersonActId() 
    {
        return salePersonActId;
    }
    public void setPlusmoney(BigDecimal plusmoney) 
    {
        this.plusmoney = plusmoney;
    }

    public BigDecimal getPlusmoney() 
    {
        return plusmoney;
    }
    public void setCustomerId(Long customerId) 
    {
        this.customerId = customerId;
    }

    public Long getCustomerId() 
    {
        return customerId;
    }
    public void setGiftmoney(BigDecimal giftmoney) 
    {
        this.giftmoney = giftmoney;
    }

    public BigDecimal getGiftmoney() 
    {
        return giftmoney;
    }
    public void setDepreciationmoney(BigDecimal depreciationmoney) 
    {
        this.depreciationmoney = depreciationmoney;
    }

    public BigDecimal getDepreciationmoney() 
    {
        return depreciationmoney;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public List<String> getRemarkList() {
        return remarkList;
    }

    public void setRemarkList(List<String> remarkList) {
        this.remarkList = remarkList;
    }

    public void setRefundmethod(String refundmethod)
    {
        this.refundmethod = refundmethod;
    }

    public String getRefundmethod() 
    {
        return refundmethod;
    }
    public void setPlusbalance(Long plusbalance) 
    {
        this.plusbalance = plusbalance;
    }

    public Long getPlusbalance() 
    {
        return plusbalance;
    }
    public void setGiftbalance(Long giftbalance) 
    {
        this.giftbalance = giftbalance;
    }

    public Long getGiftbalance() 
    {
        return giftbalance;
    }
    public void setPointbalance(Long pointbalance) 
    {
        this.pointbalance = pointbalance;
    }

    public Long getPointbalance() 
    {
        return pointbalance;
    }
    public void setRefundguarantees(String refundguarantees) 
    {
        this.refundguarantees = refundguarantees;
    }

    public String getRefundguarantees() 
    {
        return refundguarantees;
    }
    public void setCardId(Long cardId)
    {
        this.cardId = cardId;
    }

    public Long getCardId()
    {
        return cardId;
    }
    public void setIshascommission(String ishascommission) 
    {
        this.ishascommission = ishascommission;
    }

    public String getIshascommission() 
    {
        return ishascommission;
    }
    public void setRealsalemoney(BigDecimal realsalemoney) 
    {
        this.realsalemoney = realsalemoney;
    }

    public BigDecimal getRealsalemoney() 
    {
        return realsalemoney;
    }
    public void setIshasguaranteemoney(String ishasguaranteemoney) 
    {
        this.ishasguaranteemoney = ishasguaranteemoney;
    }

    public String getIshasguaranteemoney() 
    {
        return ishasguaranteemoney;
    }
    public void setPenaltguaranteemoney(BigDecimal penaltguaranteemoney) 
    {
        this.penaltguaranteemoney = penaltguaranteemoney;
    }

    public BigDecimal getPenaltguaranteemoney() 
    {
        return penaltguaranteemoney;
    }
    public void setState(String state) 
    {
        this.state = state;
    }

    public String getState() 
    {
        return state;
    }
    public void setRemittanceaccount(String remittanceaccount) 
    {
        this.remittanceaccount = remittanceaccount;
    }

    public String getRemittanceaccount() 
    {
        return remittanceaccount;
    }
    public void setBankname(String bankname) 
    {
        this.bankname = bankname;
    }

    public String getBankname() 
    {
        return bankname;
    }
    public void setSubbranchbank(String subbranchbank) 
    {
        this.subbranchbank = subbranchbank;
    }

    public String getSubbranchbank() 
    {
        return subbranchbank;
    }
    public void setBankusername(String bankusername) 
    {
        this.bankusername = bankusername;
    }

    public String getBankusername() 
    {
        return bankusername;
    }
    public void setCreatepersonid(Long createpersonid) 
    {
        this.createpersonid = createpersonid;
    }

    public Long getCreatepersonid() 
    {
        return createpersonid;
    }
    public void setIsopenguarantee(Long isopenguarantee) 
    {
        this.isopenguarantee = isopenguarantee;
    }

    public Long getIsopenguarantee() 
    {
        return isopenguarantee;
    }
    public void setReturncarddeptId(Long returncarddeptId) 
    {
        this.returncarddeptId = returncarddeptId;
    }

    public Long getReturncarddeptId() 
    {
        return returncarddeptId;
    }
    public void setDutypersonId(Long dutypersonId) 
    {
        this.dutypersonId = dutypersonId;
    }

    public Long getDutypersonId() 
    {
        return dutypersonId;
    }

    public String getCardCode() {
        return cardCode;
    }

    public void setCardCode(String cardCode) {
        this.cardCode = cardCode;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("orderId", getOrderId())
            .append("partnerviphallnum", getPartnerviphallnum())
            .append("vipchannelnum", getVipchannelnum())
            .append("salesmoney", getSalesmoney())
            .append("completedTime", getCompletedTime())
            .append("physicalexaminationfee", getPhysicalexaminationfee())
            .append("registrationfee", getRegistrationfee())
            .append("employeeguaranteemoney", getEmployeeguaranteemoney())
            .append("saleDeptId", getSaleDeptId())
            .append("refunddeposit", getRefunddeposit())
            .append("refundcash", getRefundcash())
            .append("salePersonActId", getSalePersonActId())
            .append("plusmoney", getPlusmoney())
            .append("customerId", getCustomerId())
            .append("giftmoney", getGiftmoney())
            .append("depreciationmoney", getDepreciationmoney())
            .append("remarks", getRemarks())
            .append("refundmethod", getRefundmethod())
            .append("plusbalance", getPlusbalance())
            .append("giftbalance", getGiftbalance())
            .append("pointbalance", getPointbalance())
            .append("refundguarantees", getRefundguarantees())
            .append("cardId", getCardId())
            .append("ishascommission", getIshascommission())
            .append("realsalemoney", getRealsalemoney())
            .append("ishasguaranteemoney", getIshasguaranteemoney())
            .append("penaltguaranteemoney", getPenaltguaranteemoney())
            .append("state", getState())
            .append("remittanceaccount", getRemittanceaccount())
            .append("bankname", getBankname())
            .append("subbranchbank", getSubbranchbank())
            .append("bankusername", getBankusername())
            .append("createtime", getCreateTime())
            .append("createpersonid", getCreatepersonid())
            .append("isopenguarantee", getIsopenguarantee())
            .append("returncarddeptId", getReturncarddeptId())
            .append("dutypersonId", getDutypersonId())
            .append("cardCode", getCardCode())
            .toString();
    }

    public Returncard() {}

    public Returncard(Long orderId, Date completedTime, String state) {
        this.orderId = orderId;
        this.completedTime = completedTime;
        this.state = state;
    }

}
